package com.ruicar.afs.cloud.filecenter.config;

import com.ruicar.afs.cloud.filecenter.service.AfsFileProcessor;
import lombok.experimental.UtilityClass;

import java.util.*;

/**
 * FileConfigCache
 * <p>Description: </p>
 *
 * @author Fzero
 * @version 1.0
 * @date create on 2020-05-29 15:00:17
 * @since 1.0
 */
@UtilityClass
public class FileConfigCache {

    /**
     * Default afs file size 10M
     * <p>Description: </p>
     */
    public long DEFAULT_AFS_FILE_SIZE = 1024*1024*10;

    /**
     * Black file signature
     * <p>Description: </p>
     */
//黑名单文件类型特征码
    public final Set<String> BLACK_FILE_SIGNATURE = new HashSet<>();

    /**
     * Allow file size
     * <p>Description: </p>
     */
    public final Map<String,Long> ALLOW_FILE_SIZE = new HashMap<>();

    /**
     * Black file type
     * <p>Description: </p>
     */
//黑名单文件类型
    public final Set<String> BLACK_FILE_TYPE = new HashSet<>();

    /**
     * Global pre file processor
     * <p>Description: </p>
     */
    public final List<AfsFileProcessor> GLOBAL_PRE_FILE_PROCESSOR = new ArrayList<>();

    /**
     * Global post file processor
     * <p>Description: </p>
     */
    public final List<AfsFileProcessor> GLOBAL_POST_FILE_PROCESSOR = new ArrayList<>();

    /**
     * File pre processor
     * <p>Description: </p>
     */
    public final Map<String,List<AfsFileProcessor>> FILE_PRE_PROCESSOR = new HashMap<>();
    /**
     * File post processor
     * <p>Description: </p>
     */
    public final Map<String,List<AfsFileProcessor>> FILE_POST_PROCESSOR = new HashMap<>();
}
